// written by arif
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void)
{
	 

	char string[100];
	char key[10];
	char returnKey[100];
	char **arr;
	int x,y;
	int c;


	printf("Please enter the string:\n");
	gets(string);
	printf("please enter the key:\n");
	gets(key);
	printf("-------\n\n");
	
	x=strlen(string);
	y=strlen(key);
	c=x/y;
	if(x%y!=0)
		c=x/y+1;

	arr=(char**)malloc(c*sizeof(char));

	for(int i=0; i<c; i++){

		arr[i]=(char*)malloc(y*sizeof(char));
	}

	int f=0;
	for(int m=0; m<c; m++)// string arry yazan for
	{
		for(int n=0; n<y; n++,f++)
		{	
			arr[m][n]=string[f];
			if(f>=x)
				arr[m][n]=' ';
		}
		
	}

	for(int m=0; m<c; m++)
	{
		for(int n=0; n<y; n++)
		{
			printf("%c",arr[m][n]);
		}
		printf("\n");
	}
	
	printf("\n\n");
	
	int temp;
	int  tempArr;

	for(int check=0; check<=5; check++);
	{
		for(int k=0; k<y; k++)
		{
			if(key[k]>key[k+1]&& key[k+1]!=0)
			{
				temp=key[k];
				key[k]=key[k+1];
				key[k+1]=temp;

				for(int m=0; m<c; m++)
				{
					tempArr=arr[m][k];
					arr[m][k]=arr[m][k+1];
					arr[m][k+1]=tempArr;
				}
			}
		}
	}

	printf("%s\n", key);
	printf("-------\n");

	for(int m=0; m<c; m++)
	{
		for(int n=0; n<y; n++)
		{
			printf("%c",arr[m][n]);
		}
		printf("\n");
	}

	printf("\n\n");
	printf("-------\n");

	int k=0;
	
	for(int m=0; m<c; m++)
	{
		for(int n=0; n<y; n++,k++)
		{
			returnKey[k]=arr[m][n];
			if(k>y*c)
				returnKey[k]=0;
		}
	}
	
	for(int m=0; m<y*c; m++)
	{
		printf("%c",returnKey[m]);
	}
	printf("\n");

	return 0;

}
